package com.teamone.etl.apimanager.controller;


import com.baomidou.mybatisplus.extension.api.R;
import com.github.pagehelper.PageInfo;
import com.teamone.etl.apimanager.entity.Api;
import com.teamone.etl.apimanager.request.ApiQuery;
import com.teamone.etl.apimanager.service.ApiService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 接口表(Api)表控制层
 *
 * @author makejava
 * @since 2021-01-20 18:32:04
 */
@RestController
@RequestMapping("api")
public class ApiController extends com.baomidou.mybatisplus.extension.api.ApiController {
    /**
     * 服务对象
     */
    @Resource
    private ApiService apiService;

    /**
     * 分页+模糊查询接口列表
     * @param apiQuery 分页+模糊对象
     * @return 接口列表
     */
    @PostMapping
    public R<PageInfo<Map<String,Object>>> selectAll(@RequestBody ApiQuery apiQuery) {
        PageInfo<Map<String,Object>> apiPageInfo = apiService.selectAll(apiQuery);
        return success(apiPageInfo);
    }

    /**
     * 根据id删除接口
     * @param id 接口id
     * @return 操作成功/失败
     */
    @DeleteMapping("{id}")
    public R logicDeleteById(@PathVariable Integer id){
        apiService.logicDeleteById(id);
        return success(true);
    }

    /**
     * 修改单条记录
     * @param api 修改接口对象
     * @return 操作成功/失败
     */
    @PutMapping
    public R updateOne(@RequestBody Api api){
        apiService.updateOne(api);
        return success(true);
    }

    /**
     * 新增一条记录
     * @param api 新增接口对象
     * @return 操作成功/失败
     */
    @PostMapping("save")
    public R save(@RequestBody Api api){
        apiService.saveOne(api);
        return success(true);
    }
}